<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    求100-999之间.水仙花数一个3位数,它的每个各位上的数字的 3次幂之和等于它本身,
    例如:1^3 + 5^3 + 3^3=153 **
    思路:
    1.var num;num的百位数,十位数,个位数
                    a     b     c
    2.num===a**3 + b**3 + c**3
    3.153 拿到百位数:1  153/100=1.53 取整 拿到1
    4.153 拿到十位数:5  153%100=53 53/10=5.3 取整 拿到5
    5.153 拿到个位数:3  153%10=3

    <script>
        for(var i=100;i<=999;i++){
            var a=parseInt(i/100);//百位数
            var b=parseInt((i%100)/10);//十位数
            var c=i%10;//个位数
            // console.log(a,b,c);我们把所有的数都拆开,个十百位数
            if(i===a**3 + b**3 + c**3){
                console.log(i);//
            }
        }
    </script>

    案例:求100-200质数,-难.
    在大于1的自然数中,除了1和它本身以外不再有任何其他因数的自然数
    思维:标记思维法
    循环100,101,102...200拿到里面的所有的数
    做一个标记,让当前的100-200之间的所有的数都携带一个统一的标记,假设,flag=1
    <script>        
        for(var i=100;i<=200;i++){
            var flag=1;//进场:依次进来,携带一个标记,flag=1
            // 检查站:
            // i=100 2-99之间都不能出现因数,不能整除 =>说明一定是质数
            // i=101 2-100之间都不能出现因数,不能整除 =>说明一定是质数
            // i=102 2-101之间都不能出现因数,不能整除 =>说明一定是质数
            // i=103 2-102之间都不能出现因数,不能整除 =>说明一定是质数
            // i     2到i-1的情况都不能出现因数,不能整除 =>说明一定是质数

            for(var j=2;j<=i-1;j++){
                // 第一次进来的,i=100,j=2,3,4,5,..99
                if(i%j===0){//可以整除,一定不是质数
                    flag=2;//改变标记
                    break;//满足一次就可以证明它不是质数,提前去结束我的循环,优化性能
                }
            }
            // 出场:通过flag进行查看,如果flag===1的情况下,说明它是质数
            if(flag===1){
                document.write(i+".");
            }
        }
    </script>

</body>
</html>